home *** CD-ROM | disk | FTP | other *** search
- GeoWordsMai
- PRG formatted GEOS file V1.0
- NX1000
- ;$GEOWORDSMAI
- BLASTER'S CONVERTER V2.5
- J!GeoWShake
- GeoWTiles
- Write Image V2.1
- geoWrite V2.1
- .if Pass1
- .noeqin
- .noglbl
- .include geosSym
- .include geosMac
- .include GeoWEquates
- .include GeoWZips
- .glbl
- .eqin
- .endif
- .psect
- MAINSTAR:
- ResStart:
- MoveB r0L,FlgDat
- MAINSTAR:
- ResStart:
- MoveB r0L,FlgDatLd
- LoadW r0,#$a0
- LoadW r1,#LDATANAM
- jsr ClearRam
- LoadW r0L,#$0a
- LoadW r1L,#a2L
- jsr ClearRam
- LoadW r0L,#WORD_SIZ
- LoadW r1L,#WORD_BAS
- jsr ClearRam
- jsr InitDriv
- jsr FullCler
- lda FlgDatLd
- and #ST_LD_DA
- sta FlgDatLd
- beq InitSwap
- LoadB FlgDatLd,#$01
- ldy #$12
- 10$:
- dey
- lda dataFile,y
- sta LDATANAM,y
- lda dataDisk,y
- sta DSKNamStor,y
- cpy #$00
- bne 10$
- InitSwap:
- LoadW r6,#appName
- LoadB r7L,#APPLICAT
- LoadB r7H,#1
- LoadW r10,#NameStri
- ldx #$00
- jsr FindFTyp
- cpx #$00
- beq 01$
- jsr DiskErro
- jmp R_DoQuit
- 01$:
- LoadW r0,#appName
- jsr OpenReco
- cpx #$00
- beq 02$
- jsr DiskErro
- jmp R_DoQuit
- 02$:
- LoadW r0,#fileHead+4
- LoadW r1,#swapTabl
- LoadW r2,#NUM_MODS*2
- jsr MoveData
- jsr CloseRec
- LoadB curModul,#$ff
- jsr MyRstrCl
- lda #MOD_TITL
- jsr SwapMod
- jmp J_RunTit
- R_Do1Ico:
- jsr MyRstrCl
- jsr FullCler
- LoadW r0L,#KillIcon
- jsr DoIcons
- lda #MOD_CLRG
- jsr SwapMod
- jsr J_RunCRG
- jsr GOTOHUMN ;this also sets up select box
- lda FlgDatLd
- bne 40$
- rts ;go now to wait for mouse press
- 40$:
- MoveB WorkDriv,FlgDatLd
- 10$:
- jsr OpenDisk
- LoadW r0L,#ActDkNam
- LoadW r1L,#DSKNamSt
- ldx #r0L
- ldy #r1L
- lda #$10
- jsr CmpFStri
- beq 20$
- jsr SwapDrive
- CmpB FlgDatLd,WorkDriv
- bne 10$
- ldx #$05
- jmp DiskErro ;go now to wait for mouse press
- 20$:
- LoadB wordsin,#$01
- jmp DaLdEntr ;go now to wait for mouse press
- TestDBox:
- LoadW r5L,#DSKNamSt
- LoadW r6L,#LDATANAM
- LoadW r0L,#DErr_Box
- jmp DoDlgBox
- OtPrSLCT: ;main loop is waiting for a mouse-press so that
- lda mouseDat ;otherPressVector
- OtPrSLCT: ;main loop is waiting for a mouse-press so that
- lda mouseDat ;otherPressVector will dispatch to here,
- bmi 5$
- LoadB r2L,#SCOREBXT
- LoadB r2H,#SCOREBXT + #$90
- LoadW r3L,#(SCOREBXL*8)
- LoadW r4L,#(SCOREBXL*8) + #$60
- jsr IsMseInR
- beq 4$
- lda #MOD_SLCT
- jsr SwapMod
- jmp J_DoSLCT ;to find out where mouse is in Select Box and
- 5$: ;dispatch routines
- rts
- LoadB r2L,SM_TOP
- LoadB r2H,SM_TOP + #$10
- LoadW r3L,#$98
- LoadW r4L,#$98 + #$0c * 8
- jsr IsMseInR
- beq 5$
- lda #MOD_HUMN
- jsr SwapMod
- jsr J_DoHelp
- jmp ColrGrid
- R_DoLLod:
- LoadB wordsin,#$00
- jmp LstLoder
- GOTOH
- R_DoLLod:
- LoadB wordsin,#$00
- jmp LstLoder
- GOTOHUMN:
- lda #MOD_HUMN
- jsr SwapMod
- jsr J_RunHUM
- jmp SLCTND_1
- R_DoOwn:
- lda #MOD_HUMN
- jsr SwapMod
- jsr J_DoOwn
- jmp TwosEntr
- R_Do2Sta:
- lda #$01
- bne TwosEntr
- R_DoStar:
- lda #$00
- TwosEntr:
- sta WhchGmFl
- lda #MOD_SHAK
- jsr SwapMod
- jsr J_RunSha
- lda #MOD_TIMR
- jsr SwapMod
- jsr J_RunTMR
- lda #MOD_SEAR
- jsr SwapMod
- jsr J_RunSea
- lda CanGam
- bne 10$
- LoadB norndflg,#$00
- jmp SLCTND_1
- 10$:
- lda #MOD_SCOR
- jsr SwapMod
- jsr J_RunSco
- LoadB norndflg,#$00
- sei
- LoadW otherPre,DoGmPrnt
- cli
- jmp DispCnt
- R_DoEdit:
- lda #MOD_EDIT
- jsr SwapMod
- jsr J_RunEdi
- jmp SLCTN
- R_DoEdit:
- lda #MOD_EDIT
- jsr SwapMod
- jsr J_RunEdi
- jmp SLCTND_1
- DoSaveEn:
- lda #MOD_SAVE
- jsr SwapMod
- jmp J_RunSAVE
- R_DoAddW:
- lda #MOD_EDIT
- jsr SwapMod
- jsr J_RunAdW
- jmp
- SLCTND_1
- R_DoNewL:
- lda #MOD_SAVE
- jsr SwapMod
- jsr J_RunNew
- jmp
- SLCTNDSP
- R_DoPrLs:
- lda #MOD_PRIN
- jsr SwapMod
- jsr J_RunPrL
- jmp ColrGrid
- R_DoPrLs:
- lda #MOD_PRIN
- jsr SwapMod
- jsr J_RunPrL
- jmp ColrGrid
- R_DoQuit:
- lda #MOD_SAVE
- jsr SwapMod
- jmp J_RunQui
- SLCTND_1:
- lda #MOD_SLCT
- jsr SwapMod
- jsr J_RunSel
- SLCTNDSP:
- sei
- LoadW otherPre,OtPrSLCT
- cli
- DispCnt:
- LoadB ClrScYPo,#(#SCOREBXT + #$91)
- LoadW ClrScXPo,#GXPISTAR
- jsr FClerEn2
- MoveW WORD_BAS,wrdshave
- LoadW r11L,#GXPISTAR
- LoadB r1H,#(SCOREBXT + #$90 + TXT_LN_1_Y)
- LoadW r0L,cntwrd
- jsr PutStrin
- MoveW wrdshave,r0L
- lda #(#SET_SUPR | #SET_LEFT)
- jmp PutDecim
- DoGmPrnt:
- lda #MOD_PRIN
- jsr SwapMod
- DoGmPrnt:
- lda #MOD_PRIN
- jsr SwapMod
- jsr J_RunPri
- lda #MOD_EDIT
- jsr SwapMod
- jsr J_RunSor
- LoadW ClrScXPo,#$00
- sta ClrScYPo
- LoadB ClrScYNd,#(#SC_PIX_H-1)
- LoadW ClrScXNd,#(SCOREBXL * 8) + #$80
- jsr DoAClrSc
- jmp ColrGrid
- InitDrives:
- MoveB curDrive,BootDrive ; mark boot disk for exit
- sta WorkDrive ; flag as current drive
- MoveB numDrives,TotalDrives
- cmp #$01
- beq 3$ ; if 1, then don
- InitDrives:
- MoveB curDrive,BootDrive ; mark boot disk for exit
- sta WorkDrive ; flag as current drive
- MoveB numDrives,TotalDrives
- cmp #$01
- beq 3$ ; if 1, then don't bother with
- lda version ; must be V2.0 for third drive
- cmp #$20
- bcc 3$ ; if not, then exit
- lda driveType+2 ; is there a third drive?
- beq 3$ ; if not, then exit
- and #$0f ; strip RAM flags
- sta maxDrives ; store it
- lda driveType ; test with drive A
- and #$0f ; strip RAM flags
- cmp maxDrives ; test it
- beq 2$ ; if same, no need for REU
- lda sysRAMFlg ; check for REU device
- and #%01000000 ; driver storage
- beq 3$ ; if none, then exit
- inc numDrives ; add one to numDrives
- jmp NewDisk ; exit/log active disk
- SwapDrive:
- ldx numDrives ; check for only one drive
- dex
- bne 1$
- rts ; don't bother if only one
- jsr NextDrive ; get next drive number
- sta WorkDrive ; flag new drive as current
- jmp SetDevice ; log new device
- NextDrive:
- lda numDrives ; check for one drive
- cmp #$01
- beq 3$
- add #$08 ; add offset for device #s
- sta maxDrives ; highest highest device #
- lda WorkDrive ; get current device #
- 1$:
- add #$01 ; generate next device #
- cmp maxDrives ; have we passed max value?
- bcc 2$
- lda #$08 ; too high, start at 8 again
- 2$:
- tay ; use device # as offset
- lda driveType-8,y ; get device type
- beq 1$ ; is there an actual device?
- tya ; yes, return in A
- rts
- lda WorkDrive ; no, return old value in A
- rts
- FullCler:
- LoadW ClrScXPo,#$00
- sta ClrScYPo
- FClerEn2:
- LoadW ClrScXNd,#$013f
- LoadB ClrScYNd,#$c7
- DoAClrSc:
- LoadB dispBuff,# (ST_WR_FO | ST_WR_BA)
- jsr
- FullCler:
- LoadW ClrScXPo,#$00
- sta ClrScYPo
- FClerEn2:
- LoadW ClrScXNd,#$013f
- LoadB ClrScYNd,#$c7
- DoAClrSc:
- LoadB dispBuff,# (ST_WR_FO | ST_WR_BA)
- jsr i_Graphi
- .byte NEWPATTE,0
- .byte MOVEPENT
- ClrScXPo:
- .word 0
- ClrScYPo:
- .byte 0
- .byte RECTANGL
- ClrScXNd:
- .word 319
- ClrScYNd:
- .byte 199
- .byte NULL
- rts
- LowBeep:
- ldx #40
- bne Beep
- HiBeep:
- ldx #20
- Beep:
- sei
- LoadB C
- LowBeep:
- ldx #40
- bne Beep
- HiBeep:
- ldx #20
- Beep:
- sei
- LoadB CPU_DATA,IO_IN
- txa
- pha
- ldy #$19
- lda #$00
- 10$:
- dey
- sta sidbase,y
- cpy #$00
- bne 10$
- pla
- tax
- stx sidbase+1
- ldy #0
- sty sidbase+5 ;Y will be used in loop
- LoadB sidbase+6,%11111001
- LoadB sidbase+15,55
- LoadB sidbase+24,15
- ldx #%00010101
- stx sidbase+4 ;Gate sound on
- 01$:
- dey
- bne 01$
- dex
- bne 01$
- LoadB sidbase+4,%00010100
- LoadB CPU_DATA,RAM_64K
- cli
- rts
- DiskErro:
- pha ;Save registers
- txa
- pha
- tya
- pha
- PushW r5
- PushW r6
- PushB currentMode
- LoadW r6L,derrtext
- cpx #$03
- bne chcke5
- LoadW r5L,err3
- bra DoMeErrD ;Branch if high error
- chcke5:
- cpx #$05
- bne 01$
- LoadW r5L,err5
- bra DoMeErrD
- 01$:
- LoadW r5L,errxx
- DoMeErrD:
- LoadW r0,DErr_Box
- jsr DoDlgBox
- PopB currentMode
- PopW r6
- PopW r5
- pla
- tax
- pla
- tay
- pla
- rts
- RestBoot:
- lda BootDriv
- bne Go
- RestBoot:
- lda BootDriv
- bne GoToDriv
- ResetDri:
- lda BootDriv
- jsr GoToDriv
- MoveB TotalDri,numDrive
- rts
- GoToDriv:
- cmp curDrive
- beq 1$
- sta WorkDriv
- jsr SetDevic
- jmp OpenDisk
- rts
- MyRstrCl:
- MoveB screenco,r2L
- LoadW r1,#COLOR_MATRIX
- LoadW r0,#(25*40)
- jmp FillRam ;jsr/rts
- ColrGrid:
- lda #MOD_CLRG
- jsr SwapMod
- jsr J_RunCRG
- jmp
- SLCTND_1
- SwapMod:
- pha
- jsr RestBoot
- pla
- cmp curModul
- beq 90$
- sta curModul
- sec
- sbc #1
- asl a
- tay
- lda swapTabl+0,y
- sta r1L
- lda swapTabl+1,y
- sta r1H
- LoadW r7,#SWAP_BAS
- LoadW r2,#SWAP_SIZ
- jsr ReadFile
- cpx #$00
- beq 90$
- jsr DiskErro
- jmp
- R_DoQuit
- 90$:
- rts
- LstLoder:
- lda wordsin
- beq LoadList
- jmp DispCnt
- LoadList:
- LoadB wordsin,#$01
- GetLdFNa:
- LoadW r5L,LDATAN
- LstLoder:
- lda wordsin
- beq LoadList
- jmp DispCnt
- LoadList:
- LoadB wordsin,#$01
- GetLdFNa:
- LoadW r5L,LDATANAM
- LoadB r7L,#$07
- LoadW r10L,MyPermNa
- LoadW r0L,MyGetFDB
- jsr DoDlgBox
- ldx #$00
- lda sysDBData
- cmp #DISK
- beq ChngDisk
- cmp #CANCEL
- beq NotToOpn
- cmp #DBUSRICON
- beq ChngDriv
- DaLdEntr:
- LoadB r0L,0
- LoadW r6L,#LDATANAM
- jsr GetFile
- cpx #$00
- beq NotToOpn
- jsr DiskErro
- NotToOpn:
- jmp DispCnt
- ChngDisk:
- LoadW r6L,PLINSERT
- LoadW r5L,ClickOK
- LoadW r0L,DErr_Box
- jsr DoDlgBox
- jmp GetLdFNa
- ChngDriv:
- jsr SwapDrive
- jmp GetLdFNa
- R_DRITOG:
- LoadB sysDBData,#DBUSRICON
- jmp RstrFrmD
- GtCrDkNm:
- jsr OpenDisk
- LoadW r0L,#ActDkNam
- LoadW r1L,#DSKNamSt
- ldx #r0L
- ldy #r1L
- lda #$10
- jsr CopyFStr
- ldy #$11
- LoadB "DSKNamSt,y",#$00
- clc
- lda WorkDrive
- adc #$39
- sta DRABC
- rts
- MyGetFDB:
- .byte SET_DB_P | $01
- MyGetFDB:
- .byte SET_DB_P | $01
- .byte MyGFDBTo
- .byte #$b0 ;MYDBBOTT = #$74
- .word MYDBLEFT
- .word MYDBRIGH - #$0a
- .byte DB_USR_R
- .word GtCrDkNm
- .byte DBGETFIL,#$01,#$01
- .byte OPEN,DBI_X_0,#$5c ;88=FILENAMEBOXHI
- .byte CANCEL,DBI_X_1,#$5c
- .byte DISK,DBI_X_0,#$70
- .byte DBUSRICON,DBI_X_1,#$70
- .word DRIVICON
- .byte DBTXTSTR,#$08,#$8a
- .word OnDskTxt
- .byte DBTXTSTR,#$08,#$96
- .word DSKNamSt
- .byte NULL
- DRIVICON:
- .word DRIVPIC
- .byte DBI_X_1
- .byte 112
- .byte DRPICW
- .byte DRPICH
- .word R_DRITOG
- .byte NULL
- OnDskTxt:
- .byte BOLDON,ULINEON,"Disk In Drive "
- DRABC:
- .byte #$00
- .byte ULINEOFF,":",PLAINTEX,NULL
- DErr_Box:
- .byte SET_DB_P | $01
- .by
- DErr_Box:
- .byte SET_DB_P | $01
- .byte MYDBTOP
- .byte MYDBBOTT
- .word MYDBLEFT
- .word MYDBRIGH
- .byte DBVARSTR,TXT_LN_X,TXT_LN_1,r6
- .byte DBVARSTR,TXT_LN_X,TXT_LN_2,r5
- .byte DB_USR_ROUT
- .word HiBeep
- .byte OK,#$02,#$38
- .byte NULL
- err3:
- .byte "Insufficient Space",NULL
- err5:
- .byte "File Not Found",NULL
- errxx:
- .byte "Unspecified Error",NULL
- derrtext:
- .byte BOLDON,"* Disk Error *",NULL
- CanGam:
- .byte #$00
- CanGam:
- .byte #$00
- cntwrd:
- .byte BOLDON,ULINEON,"My Word Count",ULINEOFF,": ",0
- PLINSERT: ;25
- .byte BOLDON,"Please Insert A Disk",PLAINTEX,NULL
- ClickOK:
- .byte BOLDON,"In The Active Drive.",PLAINTEX,NULL
- FlgDatLd:
- .byte #$00
- KillIcon:
- .byte 1
- .word 10
- .byte 10
- .word #$00
- .byte #$01,#$1c,#$01,#$01
- .word R_Do1Ico
- MyPermNa:
- .byte "GWords Data V1.0",0,0,0,$00
- NameStri:
- .byte "GeoWords V1.1",0,0,0,0
- BootDrive:
- .block 1
- WorkDriv:
- .block 1
- maxDrive:
- .block 1
- TotalDri:
- .block 1
- hum1name:
- .block 10
- hum2name:
- .block 10
- hum3name:
- .block 10
- hum4name:
- .block 10
- hum5name:
- .block 10
- MyERRSav:
- .byte #$00
- findmydr:
- .byte #$08
- DRIVPIC:
- DRPICW == picW
- DRPICH == picH
- MAINENDS:
- GLOBLVAR:
- .ramsect APP_VAR
- LDATANAM:
- .block 17
- DSKNamStor:
- .block 17
- appName:
- .block 17
- MAINENDS:
- GLOBLVAR:
- .ramsect APP_VAR
- LDATANAM:
- .block 17
- DSKNamStor:
- .block 17
- appName:
- .block 17
- swapTabl:
- .block NUM_MODS*2
- LTTRA:
- .block 16 ;stores bog ltrs which are zeroed during search
- TileResu:
- .block 18
- STORA:
- .block 16 ;these store the return addresses off the
- STORB:
- .block 16 ;stack--theortically, we could be 16 deep
- leng1sav:
- .block 1 ;length of word we are matching
- leng1ctr:
- .block 1 ;length of word we have found
- restor1:
- .block 1 ;return to caller stack
- restor2:
- .block 1 ;storage
- wrdsfndc:
- .block 2
- wrdshave:
- .block 2
- newwrdsc:
- .block 2
- norndflg:
- .block 1
- numhum:
- .block 1
- pntwrdst:
- .block 2
- WhchGmFl:
- .block 1
- WasAGame:
- .block 1
- compscor:
- .block 2
- hum1scor:
- .block 2
- hum2scor:
- .block 2
- hum3scor:
- .block 2
- hum4scor:
- .block 2
- hum5scor:
- .block 2
- .ramsect $1300
- AppsBuff:
- .block 640
- DrvrBuff:
- .block 640
- StorPB:
- .block 1792
- .ramsect $5c00
- FOUND_BA:
- .block 1023
- GeoWORDS
- Resident Module
- copyright 1989
- David B. Ferguson
- Written: DATE Page #PAGE
- GeoWORDS
- Resident Module
- copyright 1989
- David B. Ferguson
- Written: DATE Page #PAGE
- GeoWords Resident Module
- Page #PAGE Writte
- GeoWords Resident Module
- Page #PAGE Written: DATE
-